import java.util.concurrent.PriorityBlockingQueue;

/**
 * Created with IntelliJ IDEA
 * Description:
 * User:恋恋
 * Date:2023-01-04
 * Time:11:22
 */
class MyTask{

    public static void put(MyTask task) {
    }
}
class MyTimer{
    //扫描线程
    private Thread t = null;

    //有一个阻塞优先级队列，来保存任务
    private PriorityBlockingQueue<MyTask> queue = new PriorityBlockingQueue<>();

    public MyTimer(){
        t= new Thread(() ->{
            while(true){
                try{
                    //取出队首元素，检查看看队首元素任务是否到时间了
                    //如果时间没到，就把任务塞回队列里去。
                    //如果时间到了，就把任务进行执行
                    MyTask myTask= queue.take();
                    long curTime = System.currentTimeMillis();
//                    if (curTime < myTask.getTime()){
//                        //还没到点，先不必执行
//                        //现在是13：00，取出来的任务是14：00执行
//                        queue.put(myTask);
//                    }else {
//                        //时间到了！！执行任务！！
//                        myTask.run();
//
//                    }

                }catch (InterruptedException e){
                    e.printStackTrace();;
                }
            }
        });
    }
    //指定两个参数
    //第一个参数是 任务 内容
    //第二个参数是 任务 在多少毫秒之后执行，形如1000
   public void schedule(Runnable runable,long after){
        //注意这里的时间上的换算
   //    MyTask task = new MyTask(runable,System.currentTimeMillis()+after);
    //   MyTask.put(task);
   }
}
public class TestDemo {
}
